package com.realshare.frame.util.verify;


import com.realshare.frame.util.StringUtils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 验证工具类
 */
public class VerifyUtils {
    /**
     * 验证身份证是否合法
     *
     * @param IDStr 身份证号
     * @return 有效：返回"" 无效：返回String错误信息
     */
    public static String isIDCard(String IDStr) {
        IDCard idCard = new IDCard();
        return idCard.isIDCard(IDStr);
    }

    /**
     * 手机号验证
     *
     * @param mobileStr
     * @return 有效：返回"" 无效：返回String错误信息
     */
    public static String isMobile(String mobileStr) {
        if (StringUtils.isNotBlank(mobileStr)) {
            Pattern p = Pattern.compile("^((13[0-9])|(14[6-7])|(15[^4,\\D])|(17[6-8])|(18[0-9]))\\d{8}$"); // 验证手机号
            Matcher m = p.matcher(mobileStr);
            if (!m.matches()) {
                return "手机号码无效！";
            }
        }
        return "";
    }

    /**
     * 电话号码验证
     *
     * @param phoneStr
     * @return 有效：返回"" 无效：返回String错误信息
     */
    public static String isPhone(String phoneStr) {
        if (StringUtils.isNotBlank(phoneStr)) {
            Pattern p1 = Pattern.compile("^[0][1-9]{2,3}-[0-9]{5,10}$");  // 验证带区号的
            Pattern p2 = Pattern.compile("^[1-9]{1}[0-9]{5,8}$");         // 验证没有区号的
            if (phoneStr.length() > 9) {
                Matcher m = p1.matcher(phoneStr);
                if (!m.matches()) {
                    return "电话号码无效！";
                }
            } else {
                Matcher m = p2.matcher(phoneStr);
                if (!m.matches()) {
                    return "电话号码无效！";
                }
            }
        }
        return "";
    }
}
